<?php

/**
 * TeamPerson form.
 *
 * @package    ingenyo
 * @subpackage form
 * @author     Your name here
 */
class TeamPersonForm extends BaseTeamPersonForm
{
  public function configure()
  {
    unset ($this['created_at'],$this['updated_at']);
    
     #lo seteamos como hidden porque se recibe por parametro
    $this->setWidget('team_id', new sfWidgetFormInputHidden());

    $this->getWidget('person_id')->setOption('multiple', true);

    # sino es nuevo!

    $this->getValidator('person_id')->setOption('multiple', true);
  }
  #este metodo lo escribo para  guardar las relaciones Na N nose porque no lo hace solo el widget cuando le  digo multple
  protected function doUpdateObject($values)
  {
    parent::doUpdateObject($values);
    TeamPersonPeer::doDeleteForUpdate($this->getObject());
    #saco el primero que ya fue procesado por el parent de arriba
    array_shift($values['person_id']);
    #listos los valores para lso demas
    
    foreach($values['person_id'] as $person_id){
      $team_person = new TeamPerson();
      $team_person->setPersonId($person_id);
      $team_person->setTeamId($values['team_id']);
      $team_person->save();
    }

  }

  protected function updateDefaultsFromObject()
  {
    parent::updateDefaultsFromObject();

    if (isset($this->widgetSchema['person_id']))
    {
      $values = array();
      foreach ($this->object->getPersons() as $person)
      {
        $values[] = $person->getId();
      }
      $this->setDefault('person_id', $values);
    }
}
